package com.xuyanze.es.face;

import java.io.Serializable;

/**
 * @author ：lzy
 * @date ：2023-02-20
 * @description：
 */
public interface Match<Children,R> extends Serializable {

    /**
     * 查询全表
     * @return
     */
    Children matchAllQuery();

    /**
     * 短语查询
     * @param field
     * boost 提升一个语句的相对权重（ boost 值大于 1 ）或降低相对权重
     * @return
     */
    Children matchPhraseQuery(R field, Object val);
    Children matchPhraseQuery(R field, Object val, float boost);

    /**
     * 分词匹配
     * @param field
     * boost 提升一个语句的相对权重（ boost 值大于 1 ）或降低相对权重
     * matchQueryWithFilter 不计入得分
     * @return
     */
    Children matchQuery(R field, Object val);
    Children matchQuery(R field, Object val, float boost);

}
